Optical scanners are popular peripheral devices for computers. Optical scanners are used to take objects containing printed information (such as text, illustrations or photographs) and convert the information into a digital form that a computer can use. In general, a user places objects to be scanned onto a platen of the scanner. A scanner head is passed over the platen area and the resultant image is divided into a plurality of pixels. Each pixel location is assigned a value that is dependent on the color of the pixel. The resulting matrix of bits (called a bit map) can then be stored in a file, displayed on a monitor, and manipulated by software applications.
A user will frequently have a need to scan multiple objects. By way of example, a user may want to scan multiple photographs, receipts or baseball cards. In order to save time, it is desirable to scan more than a single object at a time. Thus, the user will place multiple objects on the platen of the scanner and scan them in a single pass. This saves both time and energy, because the user does not have to repeat for each object the process of placing the objects on the scanner platen, closing the lid and interfacing with scanning software.
One problem, however, with scanning multiple objects simultaneously is that the objects are represented in the scanned image as a single bit map. This means that when the scanned image is saved as a file, displayed on a monitor, or manipulated by a software application the image is considered as a single image or object. Frequently, however, a user will want to save each object as a separate file. Some scanning applications do allow the user to manually select the boundaries of each object and save the object as a separate file. However, this process of manually segregating each object within the scanned image is repetitious, tedious and time consuming.
Therefore, what is needed is a simple and robust system and method for detecting and extracting objects from a scanned image. This system and method would allow a user to place multiple objects on a scanner, recognizes the number of objects on the scanner, and queries the user about whether he would like to store each object as a separate file. Such a system and method would make the scanning process quicker and more efficient and relieve the user of the burden of manual segmenting each object in the scanned image.